﻿/***********************************************************************
 * <copyright file="IItemTransactionDetail.cs" company="BUCA JSC">
 * -->    Copyright (C) statement. All right reserved
 * </copyright>
 * Account
 * Created:   LinhMC
 * Email:    linhmc@buca.vn
 * Website:
 * Create Date: Tuesday, October 22, 2013
 * Usage: 
 * 
 * RevisionHistory: 
 * Date         Author               Description 
 * 
 * ************************************************************************/

using System.Collections.Generic;
using BusinessObjects.BussinessDictionary;
using BusinessObjects.BussinessVoucher;

namespace DataObjects.StandartInterfaces.Voucher
{
    /// <summary>
    /// Defines methods to access ItemTransactionDetail
    /// </summary>
    /// <remarks>
    /// This is a database-independent interface. Implementations are database specific
    /// </remarks>
    public interface IItemTransactionDetailDao
    {
        long GetSequence();
        /// <summary>
        /// Gets the item transaction details by item transaction.
        /// </summary>
        /// <param name="refId">The reference identifier.</param>
        /// <returns></returns>
        List<ItemTransactionDetail> GetItemTransactionDetailsByItemTransaction(long refId);

        /// <summary>
        /// Gets the item transaction detail.
        /// </summary>
        /// <param name="itemTransactionDetailId">The item transaction detail identifier.</param>
        /// <returns></returns>
        ItemTransactionDetail GetItemTransactionDetail(int itemTransactionDetailId);


        /// <summary>
        /// Inserts the item transaction detail.
        /// </summary>
        /// <param name="itemTransactionDetail">The item transaction detail.</param>
        /// <returns></returns>
        string InsertItemTransactionDetail(ItemTransactionDetail itemTransactionDetail);


        /// <summary>
        /// Updates the item transaction detail.
        /// </summary>
        /// <param name="itemTransactionDetail">The item transaction detail.</param>
        /// <returns></returns>
        string UpdateItemTransactionDetail(ItemTransactionDetail itemTransactionDetail);


        /// <summary>
        /// Deletes the item transaction detail.
        /// </summary>
        /// <param name="itemTransactionDetail">The item transaction detail.</param>
        /// <returns></returns>
        string DeleteItemTransactionDetail(ItemTransactionDetail itemTransactionDetail);
    }
}
